Skip to main content

High conductance rooted trees in relation graphs.

Project description

depytrace

This project provides an algorithm for fast extraction of high-conductance trees (called core traces) rooted on designated graph nodes.

License: Apache Software License
Author: Emmanouil (Manios) Krasanakis
Dependencies: networkx (required) pcst_fast (optional)

Roadmap

:x: Method ensemble.
:x: Application for github project understanding.

Quickstart

Install the library in your environment, for example per pip install depytrace. Then, create a networkx graph, select a root node and run the snippet:

import depytrace as dp

graph, root = ...
trace = dp.Core()(graph, root)
print(dp.conductance(graph, trace))

Features

  • Near-linear running time with respect to the number of edges (doubling the edges, approximately doubles running time).
  • Provable 1+A factor approximations of maximum conductance, where A tend to be small.
  • Extensibility to future breakthroughs on Steiner problems.

Customization

Core trace extraction is actually an NP-complete problem. For this reason, solutions provided by this library are approximate and trade-off tightness for speed.

In particular, solutions are found with an algorithm called trace contraction, which internally relies on iteratively solving an NP-complete problems called ELOD maximization. In turn, the latter can be translated to rooted Steiner tree problems. To accommodate future theoretical breakthroughs, the library allows setting up custom ELOD solvers, where tighter solvers translate to tighter theoretical bounds of the trace contraction algorithm.

The dafault ELOD maximizer is a heuristic written in native Python and is chosen thanks to its cross-platform support. For systems that integrate the gcc compiler (e.g. Linux, Windows with mingw installed) you can also use a maximizer provided by the library that adjusts and depends on the pcst_fast Steiner tree solver. To use the related maximizer, just install the pcst_fast library (if gcc is properly set up, this should be as simple as pip install pcst_fast) and run the snipper:

import depytrace as dp

graph, root = ...
trace = dp.Core(dp.cleverRPCST)(graph, root)
print(dp.conductance(graph, trace))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

depytrace-0.0.2-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file depytrace-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: depytrace-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for depytrace-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c3833891e307ae3c3dc72b5758379e2acf0cf75908b66943d487cf96669f1753
MD5 b6129d6d035465da2d270094c71752a5
BLAKE2b-256 2e0ccef83fa0d1781bcef3a8f8a2e6c30402becf641997238e7ba3a023cbaa14

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page