Scénario de test & Cas d'usage
Analyse de réseaux et algorithmes de graphes.
Découvrir toutes les actions de optNetworkCréation d'une table de transactions bancaires contenant une boucle suspecte évidente (A->B->C->A) et des transactions légitimes linéaires.
| 1 | DATA casuser.transactions; INPUT from $ to $ montant; DATALINES; |
| 2 | CompteA CompteB 10000 |
| 3 | CompteB CompteC 9500 |
| 4 | CompteC CompteA 9000 |
| 5 | CompteX CompteY 500 |
| 6 | CompteY CompteZ 200 |
| 7 | ; RUN; |
| 1 | |
| 2 | PROC CAS; |
| 3 | TABLE.loadTable / path="transactions.sashdat" caslib="casuser" casOut={name="transactions", replace=true}; |
| 4 | |
| 5 | RUN; |
| 6 |
| 1 | |
| 2 | PROC CAS; |
| 3 | optNetwork.cycle / direction="DIRECTED" links={name="transactions"} maxCycles="ALL" outCyclesLinks={name="SuspiciousLoops", replace=true}; |
| 4 | |
| 5 | RUN; |
| 6 |
L'action doit générer la table 'SuspiciousLoops' contenant uniquement les transactions A->B, B->C, et C->A. Les transactions X->Y->Z ne doivent pas apparaître car elles ne forment pas de boucle fermée.