linearAssignment
Description
L'action optNetwork.linearAssignment résout le problème d'affectation linéaire au coût minimum, également connu sous le nom de couplage biparti de poids minimum. En gros, c'est l'algorithme parfait pour marier des ressources à des besoins (par exemple, des employés à des tâches) de la manière la plus économique possible. Tant que votre problème peut être modélisé comme un graphe biparti, cette action se chargera de trouver le couplage optimal .
Paramètres Clés
Préparation des données
Préparation des données d'affectation
Création d'une table CAS de liens représentant des travailleurs et des tâches avec des coûts de réalisation.
| 1 | DATA mycas.tasks; INPUT worker $ task $ cost; DATALINES; |
| 2 | Jean Tache1 10 |
| 3 | Jean Tache2 15 |
| 4 | Jean Tache3 20 |
| 5 | Marc Tache1 12 |
| 6 | Marc Tache2 8 |
| 7 | Marc Tache3 15 |
| 8 | Luc Tache1 5 |
| 9 | Luc Tache2 10 |
| 10 | Luc Tache3 12 |
| 11 | ; RUN; |
Exemples d'utilisation
Affectation de base
Résoudre le problème d'affectation avec les colonnes par défaut.
| 1 | PROC CAS; optNetwork.linearAssignment / links={name="tasks"} out={name="assign_out", replace=true}; RUN; |
Résultat Attendu :
Affectation complète avec mapping et logs
Spécification explicite des variables de poids et augmentation de la verbosité du journal.
| 1 | PROC CAS; optNetwork.linearAssignment / links={name="tasks"} linksVar={from="worker", to="task", weight="cost"} out={name="optimal_assign", replace=true} logLevel="MODERATE" timeType="REAL"; RUN; QUIT; |