optNetwork cycle

Validation de processus logistique (Cas Limite)

Scénario de test & Cas d'usage

Contexte Métier

Dans une chaîne d'approvisionnement, on cherche des dépendances circulaires invalides (A a besoin de B qui a besoin de A). Le test se concentre sur le filtrage précis des cycles par longueur pour ignorer les micro-boucles acceptables et ne trouver que les processus complexes défaillants.
À propos du Set : optNetwork

Analyse de réseaux et algorithmes de graphes.

Découvrir toutes les actions de optNetwork
Préparation des Données

Création de données contenant une micro-boucle (2 étapes) et une boucle complexe (4 étapes).

Copié !
1DATA casuser.supply_chain; INPUT from $ to $; DATALINES;
2UsineA DepotB
3DepotB UsineA
4Fournisseur1 UsineX
5UsineX DepotY
6DepotY MagazinZ
7MagazinZ Fournisseur1
8; RUN;

Étapes de réalisation

1
Indexation préalable des données (étape optionnelle mais recommandée pour les cas limites).
Copié !
1 
2PROC CAS;
3TABLE.index / TABLE={name="supply_chain"} casOut={name="supply_chain", indexVars={"from", "to"}, replace=true};
4 
5RUN;
6 
2
Exécution avec filtre strict : on veut ignorer la micro-boucle A<->B (longueur 2) et ne trouver que la boucle de longueur 3 ou plus.
Copié !
1 
2PROC CAS;
3optNetwork.cycle / direction="DIRECTED" links={name="supply_chain"} minLength=3 outCyclesLinks={name="ComplexErrors", replace=true};
4 
5RUN;
6 

Résultat Attendu


La table de résultat 'ComplexErrors' ne doit contenir QUE les liens du cycle Fournisseur1->UsineX->DepotY->MagazinZ->Fournisseur1. La boucle UsineA<->DepotB doit être ignorée grâce au paramètre minLength.