Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Algorithms

omeco provides four optimization algorithms with different speed-quality trade-offs.

Algorithm Comparison

AlgorithmSpeedQualityUse Case
GreedyMethodFast (seconds)GoodQuick optimization, large networks
ExhaustiveSearchExponentialOptimalSmall networks, exact baselines
TreeSASlower (minutes)BetterHigh-quality solutions, important workloads
TreewidthFast (ms)Best on structured netsLarge graphical-model / relational networks

Quick Guide

Use GreedyMethod when:

  • You need results quickly
  • Network has <100 tensors
  • Greedy result is good enough

Use TreeSA when:

  • You have time to optimize
  • Need best possible solution
  • Greedy result is too slow/large
  • Working with complex tensor networks

Use ExhaustiveSearch when:

  • The network is small enough for exact dynamic programming
  • You need a known-optimal FLOP-count baseline
  • You are testing or benchmarking heuristic optimizers

Use Treewidth when:

  • The network is large and structured (graphical models, factor graphs, relational instances)
  • A low-treewidth elimination order is likely to exist
  • You need a fast, deterministic, high-quality order in milliseconds

Topics

Next Steps

Choose an algorithm to learn more, or see the comparison for benchmarks.