Skip to content

nokia/causal-digital-twin

Repository files navigation

repository: Causal Digital Twin

This repository contains implementation code needed to reproduce the data generation process of the framework described in the:

paper: Towards Building a Digital Twin of Complex System using Causal Modelling

by Luka Jakovljevic1,2, Dimitre Kostadinov1, Armen Aghasaryan1 and Themis Palpanas2

1Nokia Bell Labs, France
2University of Paris, France

that is presented on The 10th International Conference on Complex Networks and their Applications
in Madrid, Spain (November 30 - December 2, 2021) "complexnetworks.org"

and appears in Volume 1015 of Springer - Studies in Computational Intelligence Series 📘

contact: luka.jakovljevic@nokia.com

usage: Mimicking Faulty System Behavior

Complex systems, such as 5G telecommunication networks, generate thousands of information about the system state each minute. The described causal model is able to capture the dependencies between observable network alerts but more importantly, to mimic the system faulty behavior, by encoding the appearance, propagation and persistence of faults 🤖

Why is this important? Because such a model can assist network experts in reasoning on the state of real system, given partial observations. Furthermore, it could allows generating labelled synthetic alerts, in order to benchmark causal discovery and network diagnosis techniques, to ensure that they will work with unseen real data with similar characteristics. Lastly, to create previously unseen faulty scenarios in the system (counterfactual reasoning) 🧠

alt text

get started: Content of the repository

folder datasets contains samples of synthetic alerts with known causal relations

module causal_digital_twin.py contains functions that construct a Causal Model

notebook Demo_one_dataset.ipynb demonstrates the creation of one dataset (one Causal Model i.e. input for a Digital Twin)

notebook Generate_all_datasets.ipynb allows simulation of all datasets used in the paper

Important functions:

generate_DAG (...) generates a random DAG of desired size and edge probability

parametrize_DAG (...) parametrizes DAG with SCM probabilities described in paper

time_series (...) builds Causal Model (SCM) and synthesizes time series of desired length as depicted on Figure 2 in paper

Python: Required Packages

  • numpy
  • pandas
  • networkx
  • matplotlib.pyplot
  • random
  • sklearn

Licence

Please cite the above mentioned paper when using the framework.

Code is published under BSD 3-Clause License
(for more info read "LICENSE file")

Copyright (c) 2021, Nokia
All rights reserved.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published