Changelog
All notable changes to the OptiX project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Added
OR-Tools solver integration with
OXORToolsSolverInterfaceComprehensive solver interface framework (
OXSolverInterface)Solution management system with
OXSolverSolutionandOXSolutionStatusSpecial constraints support (
OXSpecialConstraints)Solver factory pattern for easy solver selection
Bus assignment problem example demonstrating real-world usage
Diet problem optimization example showcasing classic linear programming
Enhanced constraint value tracking and evaluation
Comprehensive package structure with proper
__init__.pyfilesExtended test coverage for all major components
Comprehensive API documentation across all modules
Complete Sphinx documentation with modern themes
Enhanced
Problem classes now support constraint satisfaction problems (CSP)
Improved variable creation from database objects
Enhanced expression handling in
OXpressionBetter serialization support for complex data structures
Extended utility functions for class loading and management
Documentation coverage for base, data, constraints, OXpression, serialization, utilities, variables, solvers, and test modules
Sample problem documentation with detailed API references
Fixed
Core framework bugs and improved test functionality
Variable and constraint management in solver interfaces
Solution retrieval and value tracking
Database integration and object relationships
Fraction calculation and import paths in constraints module
[1.0.0] - 2024-12-15
Added
Initial stable release of OptiX Mathematical Optimization Framework
Complete documentation system with Sphinx
Multi-solver architecture supporting OR-Tools and Gurobi
Three problem types: CSP, LP, and GP with progressive complexity
Special constraints for non-linear operations
Database integration with OXData and OXDatabase
Comprehensive examples and tutorials
Full API documentation
Custom HTML and LaTeX themes
Interactive documentation features
Changed
Reorganized project structure for better maintainability
Improved import paths and module organization
Enhanced error handling and validation
Standardized naming conventions across all modules
[0.1.0] - 2024-06-01
Added
Initial release of OptiX
Framework for defining and solving optimization problems
Support for linear programming (LP) and goal programming (GP)
Decision variables with bounds
Constraint definition with relational operators
Objective function creation (minimize/maximize)
Custom exception handling with OXception
Data management with OXData and OXDatabase
Variable management with OXVariable and OXVariableSet
Serialization utilities
Class loading utilities
Requirements
Python 3.12 or higher
Poetry for dependency management
Migration Guide
Upgrading from 0.1.0 to 1.0.0
Import Changes:
# Old (0.1.0)
from problem.OXProblem import OXLPProblem
from constraints.OXConstraint import RelationalOperators
from solvers.OXSolverFactory import solve
# New (1.0.0)
from problem import OXLPProblem, ObjectiveType
from constraints import RelationalOperators
from solvers import solve
API Changes:
Simplified import structure
Enhanced solver interface
Improved error handling
Better documentation integration
New Features:
Gurobi solver support
Special constraints
Comprehensive documentation
Enhanced examples
Deprecation Notices
Version 1.0.0: - None
Future Deprecations: - Legacy import paths will be deprecated in version 2.0.0 - Direct solver instantiation will be replaced by factory pattern
Breaking Changes
Version 1.0.0: - Import path restructuring (see migration guide) - Solver interface standardization - Enhanced type checking
Security Updates
Version 1.0.0: - Enhanced input validation - Improved error handling - Secure serialization methods
Performance Improvements
Version 1.0.0: - Optimized variable and constraint management - Improved solver interface performance - Enhanced memory usage for large problems - Better algorithm complexity for search operations
Bug Fixes
Version 1.0.0: - Fixed constraint evaluation edge cases - Resolved variable bounds validation issues - Corrected serialization of complex objects - Fixed solver status reporting
Known Issues
Current Issues: - None known
Workarounds: - For very large problems (>100k variables), consider problem decomposition - Use appropriate solver timeouts for complex problems
Contributing
Contributions to OptiX are welcome! Please see our contribution guidelines:
Bug Reports: Use GitHub Issues with detailed reproduction steps
Feature Requests: Discuss in GitHub Discussions before implementation
Code Contributions: Follow our development guidelines
Documentation: Help improve and expand documentation
Reporting Issues
When reporting issues, please include:
OptiX version
Python version
Operating system
Minimal reproduction example
Expected vs. actual behavior
Error messages and stack traces
Release Process
OptiX follows semantic versioning:
Major (X.0.0): Breaking changes, major new features
Minor (0.X.0): New features, enhancements, backwards compatible
Patch (0.0.X): Bug fixes, documentation updates
Release Schedule
Major releases: Annually
Minor releases: Quarterly
Patch releases: As needed for critical fixes
Acknowledgments
Core Contributors: - Tolga BERBER - Lead Developer & Project Architect - Beyzanur SİYAH - Core Developer & Research Assistant
Special Thanks: - OR-Tools team for the excellent optimization library - Gurobi team for solver integration support - OptiX community for feedback and contributions
Dependencies: - OR-Tools: Google’s optimization tools - Gurobi: Commercial optimization solver - Python ecosystem: NumPy, SciPy, and other supporting libraries
License Information
OptiX is licensed under the Academic Free License (AFL) v. 3.0. See the LICENSE file for full license text.
Key Points: - Academic and research use encouraged - Commercial use permitted with attribution - Modifications and redistribution allowed - No warranty provided
Support and Resources
Documentation: - Complete API reference - Tutorials and examples - User guides and best practices
Community: - GitHub Discussions for questions and ideas - GitHub Issues for bug reports - Academic publications and research papers
Professional Support: - Consulting services available - Custom development and integration - Training and workshops
Version Comparison
| Feature | v0.1.0 | v1.0.0 | Planned v2.0.0 |
|---|---|---|---|
| Problem Types | LP, GP | CSP, LP, GP | + MIP, QP |
| Solvers | OR-Tools | OR-Tools, Gurobi | + CPLEX, SCIP |
| Special Constraints | Basic | Full support | + Advanced nonlinear |
| Documentation | Basic | Comprehensive | + Interactive tutorials |
| Examples | Limited | Extensive | + Industry-specific |
Download Information
Current Stable Release: 1.0.0
Installation:
# Latest stable
git clone https://github.com/yourusername/optix.git
cd OptiX
poetry install
Development Version:
# Development branch
git clone -b develop https://github.com/yourusername/optix.git
Release Archives: - v1.0.0 Source - v0.1.0 Source
Statistics
Project Metrics (v1.0.0): - Lines of code: ~15,000 - Test coverage: >95% - Documentation pages: 50+ - Example problems: 10+ - Supported platforms: Windows, macOS, Linux
Community Growth: - Contributors: 2+ - GitHub stars: Growing - Academic citations: In progress - Commercial adoption: Emerging