optNetwork cycle

Détection de blanchiment d'argent (Smurfing)

Scénario de test & Cas d'usage

Contexte Métier

Une banque souhaite identifier des schémas de transactions suspects où l'argent circule entre plusieurs comptes pour revenir finalement au compte d'origine (boucles financières). L'objectif est d'isoler ces réseaux fermés pour une investigation anti-blanchiment.
À 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 d'une table de transactions bancaires contenant une boucle suspecte évidente (A->B->C->A) et des transactions légitimes linéaires.

Copié !
1DATA casuser.transactions; INPUT from $ to $ montant; DATALINES;
2CompteA CompteB 10000
3CompteB CompteC 9500
4CompteC CompteA 9000
5CompteX CompteY 500
6CompteY CompteZ 200
7; RUN;

Étapes de réalisation

1
Chargement de la table des liens en mémoire CAS.
Copié !
1 
2PROC CAS;
3TABLE.loadTable / path="transactions.sashdat" caslib="casuser" casOut={name="transactions", replace=true};
4 
5RUN;
6 
2
Exécution de la détection de cycles sur le graphe orienté (flux d'argent) pour trouver toutes les boucles.
Copié !
1 
2PROC CAS;
3optNetwork.cycle / direction="DIRECTED" links={name="transactions"} maxCycles="ALL" outCyclesLinks={name="SuspiciousLoops", replace=true};
4 
5RUN;
6 

Résultat Attendu


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.