convertMps
Description
L'action convertMps est votre traducteur personnel pour les modèles d'optimisation mathématique. Elle convertit une table de données CAS à deux colonnes (contenant généralement les lignes brutes d'un fichier .mps) en une table structurée à sept colonnes conforme au standard MPS . C'est l'étape indispensable pour que les solveurs de SAS Viya (LP, MILP, QP) puissent interpréter vos données sans froncer les sourcils. Imaginez que vous passez d'un sac de pièces détachées (vos lignes de texte) à un moteur de Formule 1 parfaitement assemblé (le format MPS structuré).
Paramètres Clés
Préparation des données
Création des données MPS brutes
Génération d'une table SAS contenant un problème d'optimisation linéaire simple au format texte brut.
| 1 | DATA mps_data; LENGTH line $80; INPUT line $char80.; DATALINES; |
| 2 | NAME PROB01 |
| 3 | ROWS |
| 4 | N COST |
| 5 | L R1 |
| 6 | G R2 |
| 7 | COLUMNS |
| 8 | X1 COST 2 R1 1 |
| 9 | X1 R2 1 |
| 10 | X2 COST 3 R1 1 |
| 11 | X2 R2 2 |
| 12 | RHS |
| 13 | RHS1 R1 10 R2 15 |
| 14 | ENDATA |
| 15 | ; |
| 16 | RUN; |
| 17 | LIBNAME mycas cas caslib="casuser"; |
| 18 | PROC CASUTIL; |
| 19 | load DATA=work.mps_data outcaslib="casuser" casout="mps_raw" replace; |
| 20 | RUN; |
Exemples d'utilisation
Conversion MPS Standard
Convertit une table brute chargée en mémoire en une table MPS prête pour le solveur.
| 1 | PROC CAS; optimization.convertMps / DATA={name="mps_raw", caslib="casuser"}, casOut={name="mps_formatted", caslib="casuser", replace=true}; RUN; |
Résultat Attendu :
Conversion avancée (Format Libre et Noms Longs)
Cet exemple force le format libre et permet des noms de variables allant jusqu'à 32 caractères, au cas où vous auriez des noms très descriptifs.
| 1 | PROC CAS; optimization.convertMps / DATA={name="mps_raw", caslib="casuser"}, casOut={name="mps_long_names", replace=true}, FORMAT="FREE", maxLength=32; RUN; |