Skip to content

When to Use Savanty

Savanty excels at certain types of problems but isn't the right tool for everything. This guide helps you understand when Savanty will help and when to use alternatives.

Ideal Use Cases

Scheduling and Timetabling

  • Employee shift scheduling
  • Course/exam timetabling
  • Appointment booking
  • Meeting room allocation
  • Sports league fixtures

Why Savanty works: Discrete time slots, assignment constraints, conflict avoidance

Assignment and Allocation

  • Task-to-worker assignment
  • Resource allocation
  • Team formation
  • Project staffing
  • Equipment assignment

Why Savanty works: Matching problems with skill requirements and capacity limits

Planning and Sequencing

  • Delivery route planning
  • Job shop scheduling
  • Production sequencing
  • Workflow ordering

Why Savanty works: Ordering constraints, precedence rules, resource conflicts

Configuration and Selection

  • Product configuration
  • Menu planning
  • Package selection
  • Feature bundling

Why Savanty works: Compatibility constraints, required/forbidden combinations

Logic Puzzles

  • Sudoku, kakuro, nonograms
  • Constraint satisfaction puzzles
  • Combinatorial puzzles

Why Savanty works: Pure constraint satisfaction with discrete values

Characteristics of Good Problems

Your problem is a good fit if it has:

Characteristic Example
Discrete choices Assign nurse to shift (not "how many hours")
Finite options Choose from 5 workers (not infinite possibilities)
Clear constraints "No more than 5 shifts" (not "be reasonable")
Combinatorial nature Many ways to combine, need to find valid one
Binary decisions Include/exclude, assign/don't assign

When NOT to Use Savanty

Continuous Optimization

Problem: "Minimize f(x) = x² + 2x + 1 for real x"

Why not: Variables are continuous, needs calculus-based methods

Use instead: SciPy, CVXPY, or calculus

Machine Learning

Problem: "Predict house prices from features"

Why not: Statistical/learning problem, not constraint satisfaction

Use instead: scikit-learn, TensorFlow, PyTorch

Simple Calculations

Problem: "What's 15% of $200?"

Why not: Overkill - just arithmetic

Use instead: Calculator, spreadsheet, Python

Real-Time Streaming

Problem: "Continuously assign incoming orders to drivers"

Why not: ASP solves static problems, not streams

Use instead: Online algorithms, event-driven systems

Simulation

Problem: "Simulate traffic flow in a city"

Why not: Needs dynamic state evolution, not constraint solving

Use instead: SimPy, AnyLogic, custom simulation

Large-Scale Numerical

Problem: "Solve this system of 10,000 linear equations"

Why not: Better solved with numerical linear algebra

Use instead: NumPy, SciPy, specialized solvers

Edge Cases

Optimization with Soft Constraints

Can work: "Minimize violations of preferences"

ASP supports optimization, but problems with many soft constraints may be slow.

Graph Problems

Can work: Graph coloring, cliques, paths with constraints

May be slow: Very large graphs (1000s of nodes)

Planning with Actions

Can work: Simple sequential planning

Better alternatives: PDDL planners for complex planning domains

Quick Decision Guide

Text Only
Is your problem about finding a combination/assignment?
├── No → Probably not a good fit
└── Yes → Are the choices discrete (finite options)?
    ├── No → Use continuous optimization (SciPy, CVXPY)
    └── Yes → Are there clear constraints to satisfy?
        ├── No → May need ML or heuristics
        └── Yes → Is the problem size reasonable (<1000 entities)?
            ├── No → May need specialized solver
            └── Yes → Savanty is a good fit! ✓

What Savanty Suggests

When your problem isn't suitable, Savanty recommends alternatives:

Problem Type Suggested Tool
Continuous optimization SciPy (scipy.optimize)
Convex optimization CVXPY
Machine learning scikit-learn
Data analysis pandas
Simple math Calculator/spreadsheet

Still Unsure?

Try Savanty! If your problem isn't suitable, Savanty will tell you and suggest alternatives. There's no harm in asking.