optimization

loadMps

Descripción

Carga una cadena de archivo en formato MPS (Mathematical Programming System) a una tabla de datos de CAS. Este formato es un estándar industrial para describir problemas de programación lineal y mixta en enteros. Esta acción es fundamental para importar problemas de optimización definidos externamente en el entorno de SAS Viya para su resolución con solvers como solveLp o solveMilp.

optimization.loadMps <result=results> <status=rc> / casOut={casouttable}, format="FIXED" | "FREE", maxLength=integer, mpsFileString="string";
Parámetros
ParámetroDescripción
casOutEspecifica la tabla de datos de salida que contendrá los datos del problema en un formato binario compatible con los solvers de optimización de CAS.
formatEspecifica si el contenido del parámetro mpsFileString está en formato fijo (FIXED) o libre (FREE). El formato libre es más flexible, mientras que el fijo requiere una alineación estricta en columnas.
maxLengthEspecifica la longitud máxima del nombre de una variable o restricción. El valor predeterminado es 8.
mpsFileStringEspecifica la cadena de texto que contiene la definición completa del problema en formato MPS.
Creación de una cadena de archivo MPS de ejemplo

Para usar la acción loadMps, primero necesitamos definir un problema de optimización en formato de cadena de texto MPS. Este ejemplo define un problema simple de maximización. La cadena se almacena en una variable CASL para su uso posterior.

¡Copiado!
1PROC CAS;
2SESSION casauto;
3string mps_string = "
4NAME EXAMPLE
5ROWS
6 N COST
7 L ROW1
8 L ROW2
9COLUMNS
10 X1 COST 1 ROW1 1
11 X1 ROW2 1
12 X2 COST 4 ROW1 2
13 X2 ROW2 -1
14RHS
15 RHS1 ROW1 5
16 RHS1 ROW2 2
17ENDATA
18";
19RUN;

Ejemplos

Este ejemplo muestra cómo cargar la cadena MPS definida previamente en una tabla CAS llamada 'mps_table' utilizando el formato libre, que es más flexible con el espaciado.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1optimization.loadMps /
2 mpsFileString=mps_string,
3 casOut={name="mps_table", replace=true},
4 FORMAT="FREE";
5RUN;
Resultado :
La acción carga con éxito la cadena MPS en la tabla 'mps_table' en la caslib activa. La tabla resultante contiene el problema de optimización en un formato binario que los solvers de SAS Optimization pueden consumir. El log de SAS mostrará una nota de confirmación.

Este ejemplo demuestra el uso del formato fijo (el predeterminado), que requiere que los campos estén en columnas específicas, y especifica explícitamente la caslib de destino ('casuser') para la tabla de salida. También se define una longitud máxima de nombre de 8 caracteres.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1optimization.loadMps /
2 mpsFileString=mps_string,
3 casOut={caslib="casuser", name="mps_fixed_format_problem", replace=true},
4 FORMAT="FIXED",
5 maxLength=8;
6RUN;
Resultado :
La acción crea una tabla CAS llamada 'mps_fixed_format_problem' dentro de la caslib 'casuser'. La tabla contiene el problema de optimización cargado desde la cadena con formato fijo. Si la acción tiene éxito, el log de SAS mostrará una nota de confirmación y el estado de la operación.

FAQ

¿Qué hace la acción 'loadMps'?
¿Cuál es el propósito del parámetro 'casOut'?
¿Qué especifica el parámetro 'format'?
¿Para qué sirve el parámetro 'maxLength'?
¿Qué contenido debe proporcionarse en el parámetro 'mpsFileString'?