optNetwork

cycle

Beschreibung

Die Aktion `cycle` im Aktionssatz `optNetwork` berechnet die elementaren Zyklen eines Graphen. Ein elementarer Zyklus ist ein Pfad, der am selben Knoten beginnt und endet, wobei kein Knoten (außer dem Start-/Endknoten) und kein Link mehr als einmal durchlaufen wird. Diese Aktion ist nützlich für die Analyse von Rückkopplungsschleifen in Netzwerken, wie z.B. in Lieferketten, Finanztransaktionen oder Abhängigkeitsstrukturen. Sie unterstützt sowohl gerichtete als auch ungerichtete Graphen und bietet Parameter zur Einschränkung der Suche nach Zykluslänge, Linkgewicht oder Anzahl der Ergebnisse.

Einstellungen
ParameterBeschreibung
linksGibt die Eingabedatentabelle an, die die Link-Informationen (Kanten) des Graphen enthält.
nodesGibt die Eingabedatentabelle an, die die Knoteninformationen des Graphen enthält.
directionGibt an, ob der Graph als gerichtet ('DIRECTED') oder ungerichtet ('UNDIRECTED') betrachtet werden soll. Standard ist 'UNDIRECTED'.
maxCyclesBegrenzt die Anzahl der zurückzugebenden Zyklen. Kann auf eine ganze Zahl oder 'ALL' gesetzt werden. Standard ist 1.
minLengthGibt die minimale Anzahl von Links an, die ein Zyklus haben muss, um in das Ergebnis aufgenommen zu werden.
maxLengthGibt die maximale Anzahl von Links an, die ein Zyklus haben darf, um in das Ergebnis aufgenommen zu werden.
outGibt die Ausgabedatentabelle an, die die Knoten der gefundenen Zyklen enthält.
outCyclesLinksGibt die Ausgabedatentabelle an, die die Links der gefundenen Zyklen enthält.
algorithmSpezifiziert den Algorithmus zur Zyklusaufzählung: 'BACKTRACK' (Backtracking-Algorithmus) oder 'BUILD' (Building-Algorithmus).
Erstellung von Graphdaten

Erzeugt eine Datentabelle `LinkSetIn`, die einen einfachen gerichteten Graphen mit zwei Zyklen (A-B-C-A und A-D-E-A) darstellt.

Kopiert!
1DATA mycas.LinkSetIn; INPUT from $ to $ weight; DATALINES;
2A B 1
3B C 1
4C A 1
5A D 1
6D E 1
7E A 1
8; RUN;

Beispiele

Führt die Aktion `cycle` aus, um alle Zyklen im Graphen zu finden und die Knoten der Zyklen in der Tabelle `Cycles` zu speichern.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1 
2PROC CAS;
3optNetwork.cycle / direction="DIRECTED" links={name="LinkSetIn"} out={name="Cycles"} maxCycles="ALL";
4 
5RUN;
6 
Ergebnis :
Die Aktion identifiziert die beiden Zyklen (A-B-C-A und A-D-E-A) und speichert die Sequenz der Knoten in der Ausgabetabelle.

Sucht nach Zyklen mit einer genauen Länge von 3 Links, verwendet den BACKTRACK-Algorithmus und gibt sowohl Knoten als auch Links der Zyklen aus.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1 
2PROC CAS;
3optNetwork.cycle / direction="DIRECTED" links={name="LinkSetIn"} algorithm="BACKTRACK" minLength=3 maxLength=3 out={name="CyclesNodes"} outCyclesLinks={name="CyclesLinks"} maxCycles="ALL";
4 
5RUN;
6 
Ergebnis :
Es werden nur Zyklen der Länge 3 gefunden. Die Tabelle `CyclesNodes` enthält die Knotenfolgen, und `CyclesLinks` enthält die Details zu den Kanten der Zyklen.

FAQ

Was ist der Zweck der cycle-Aktion?
Welche Algorithmen stehen für die Aufzählung der Zyklen zur Verfügung?
Wie legt man fest, ob der Graph gerichtet oder ungerichtet ist?
Wie kann die maximale Anzahl der zurückgegebenen Zyklen begrenzt werden?
Welche Parameter steuern die Länge der gesuchten Zyklen?
In welchen Ausgabetabellen werden die Ergebnisse der Zyklen gespeichert?
Wie kann die maximale Laufzeit des Algorithmus begrenzt werden?

Zugehörige Szenarien

Anwendungsfall
Erkennung von Kreislaufbuchungen (Geldwäsche)

Eine Bank möchte verdächtige Transaktionsmuster identifizieren, bei denen Geld über mehrere Konten im Kreis fließt (Smurfing/Structuring), um die Herkunft zu verschleiern. Es so...

Anwendungsfall
Performance-Analyse in komplexen Lieferketten

Ein Logistikunternehmen analysiert ein massives Netzwerk von Lieferrouten auf ineffiziente Rückführungen. Da das Netzwerk riesig ist, soll der Test die Performance prüfen und di...

Anwendungsfall
Analyse spezifischer Routing-Schleifen (Cas Limite)

Ein Netzwerkadministrator sucht nach spezifischen Routing-Problemen in einem IT-Netzwerk. Es sind nur 'kurze' Schleifen von Interesse (Länge 3 bis 4), da längere Pfade als valid...