def detect_agent_cycles(interactions, cycle_length=2):
    """
    Detecta ciclos repetitivos entre agentes basados en las interacciones.
    
    :param interactions: Lista de tuplas (agente_origen, agente_destino)
    :type interactions: list
    :param cycle_length: Longitud mínima del ciclo a detectar
    :type cycle_length: int
    :return: Diccionario con pares de agentes como claves y el conteo de ciclos como valores
    :rtype: dict
    """
    from collections import defaultdict
    
    # Contar interacciones entre pares específicos de agentes
    pair_counts = defaultdict(int)
    
    for i in range(len(interactions) - 1):
        # Consideramos pares de interacciones consecutivas para detectar ciclos A->B->A->B
        if i + 1 < len(interactions):
            source1, target1 = interactions[i]
            source2, target2 = interactions[i + 1]
            
            # Si el target1 es igual al source2, y el target2 es igual al source1, tenemos un ciclo
            if target1 == source2 and target2 == source1:
                pair_counts[f"{source1} -> {target1}"] += 1
    
    return pair_counts


interactions = [
    ("A", "B"),
    ("B", "A"),
    ("A", "C"),
]


print(
    detect_agent_cycles(interactions)
)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: