Totsu (凸), meaning "convex" in Japanese, is an open-source project designed to revolutionize how the Simplex method is understood, taught, and applied. It combines the power of efficient linear programming with interactive visualizations that demystify the optimization process for students, educators, and practitioners.
With Totsu, users can:
- Solve linear programming problems with a modular and extensible Simplex solver.
- Explore optimization concepts interactively through visualization tools like the TableauVisualizer and SensitivityAnalyzer.
- Gain deep insights into feasible regions, duality, and sensitivity analysis without needing to be an LP expert.
Totsu transforms optimization into an engaging, visual experience, making it ideal for both educational and practical applications.
- Step-by-step visualization of the Simplex method, highlighting:
- Entering variables to improve the objective.
- Leaving variables to maintain feasibility.
- The entire tableau evolution across iterations.
- Perfect for teaching and learning the mechanics of the Simplex algorithm interactively.
- Explore how changes in constraint values impact the objective function with:
- 3D Objective Value Surface: Valid ranges for significant dual variables visualized interactively.
- Ridge Analysis: Trace optimal paths dynamically with gradient-guided animations.
- Designed to work alongside Pyomo, a popular open-source optimization modeling library.
- Easily integrates into workflows involving dynamic constraints or Branch and Bound for integer programming.
- For Educators: Bring optimization to life with interactive tools that simplify teaching the Simplex algorithm and LP concepts.
- For Students: Master linear programming by visualizing each step, from tableau updates to sensitivity analysis.
- For Practitioners: Gain actionable insights into real-world decision-making problems, such as supply chain optimization or resource allocation.
Totsu can be installed via Conda for robust dependency management.
conda install -c conda-forge pyomo numpy pytest plotly dash dash-bootstrap-components
pytest
For Jupyter Notebook support:
conda install jupyterlab
Launch the TableauVisualizer to explore the Simplex method step by step:
python3 -m totsu.examples.model_building_imp.examples.chp1_1_product_mix.product_mix_tableau_visualization
Dive into sensitivity analysis and visualize objective value surfaces:
python3 -m totsu.examples.model_building_imp.examples.chp1_1_product_mix.product_mix_visualization
Open demo.ipynb
in JupyterLab to run visualizers interactively:
jupyter lab
Totsu aims to make linear programming accessible and practical for everyone:
- Education: Empower universities and online learning platforms with an interactive tool for teaching LP.
- Small Businesses: Simplify decision-making by visualizing sensitivity to constraints.
- Open Source: Build a vibrant community around LP visualization and optimization.
We welcome contributions! Please see our Contributing Guide for details on how to get involved.
Totsu is licensed under the MIT License, ensuring it remains accessible and open for all.