Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
0e100b9
[Refactor] Streamline documentation to eliminate redundancy and impro…
napinoco Jul 20, 2025
f1fbce2
[Complete] Redesign HTML reports for reliability and usability
napinoco Jul 20, 2025
0d9be48
[Fix] Improve data export functionality and fix summary.json generation
napinoco Jul 22, 2025
86bfae9
[Fix] Skip database storage for unknown solver names
napinoco Jul 22, 2025
d31cb75
[Fix] Handle empty arrays in MATLAB mat_loader cone structure validation
napinoco Jul 22, 2025
2ef15f0
[Fix] Add support for array-format objective vectors in SDPA .dat-s f…
napinoco Jul 22, 2025
b8b5ec2
[Fix] Comment out 18 problematic problems and correct known_objective…
napinoco Jul 26, 2025
abd48a3
[Fix] Fix Python solver timeout handling to ensure proper database re…
napinoco Jul 26, 2025
3675264
[Feature] Add command-line timeout control for solver execution
napinoco Jul 26, 2025
1250264
[Docs] Comprehensive timeout functionality documentation update
napinoco Jul 26, 2025
4ce8a87
[Refactor] Implement subprocess isolation architecture with symmetric…
napinoco Aug 1, 2025
973b2fd
[Docs] Simplify detail_design.md to focus on technical design
napinoco Aug 2, 2025
2baf90e
[Optimize] Lightweight validation for faster system checks
napinoco Aug 2, 2025
086374f
[Docs] Update CLAUDE.md with MATLAB specs and MVP principles
napinoco Aug 3, 2025
4bbbd5c
[Docker] Complete Docker containerization with multi-platform support
napinoco Aug 3, 2025
3bf02f6
Revert "[Docker] Complete Docker containerization with multi-platform…
napinoco Aug 3, 2025
d582b6b
[Remove] Complete removal of memory monitoring functionality
napinoco Aug 3, 2025
7ffa95d
[Update] Add latest benchmark results to database
napinoco Aug 5, 2025
139a975
[Update] Improve results matrix legend and add latest benchmark data
napinoco Aug 5, 2025
7e85846
[Fix] Integrate custom SDPT3 solution conversion function
napinoco Aug 5, 2025
cb42974
[Refactor] Remove Octave support and simplify to MATLAB-only
napinoco Aug 5, 2025
dfefe87
[Cleanup] Complete removal of all Octave references from codebase
napinoco Aug 5, 2025
9d5d97c
[Optimize] Database management with JSON-based restoration
napinoco Aug 5, 2025
41af8c9
[Fix] Improve database directory management and architecture diagram
napinoco Aug 5, 2025
1cc9bde
[Cleanup] Remove unmanageable dev history and test files
napinoco Aug 5, 2025
b98dcd0
[CI] Trigger PR workflow sync
napinoco Aug 5, 2025
0b2c966
[Fix] Add missing psutil dependency to requirements.txt
napinoco Aug 5, 2025
f189660
[Update] Improve HTML report formatting and site config
napinoco Aug 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -155,12 +155,8 @@ jobs:

### Available Reports
- [📊 Dashboard](${previewUrl}) - Main benchmark overview
- [⚡ Solver Comparison](${previewUrl}solver_comparison.html) - Performance comparison
- [📋 Problem Analysis](${previewUrl}problem_analysis.html) - Problem insights
- [📈 Results Matrix](${previewUrl}results_matrix.html) - Problems × Solvers matrix
- [📊 Statistical Analysis](${previewUrl}statistical_analysis.html) - Advanced analytics
- [⚡ Performance Profiling](${previewUrl}performance_profiling.html) - Performance metrics
- [🖥️ Environment Info](${previewUrl}environment_info.html) - System specifications
- [📋 Raw Data](${previewUrl}raw_data.html) - Detailed benchmark data

### Notes
- Preview uses the pre-built reports from your branch
Expand Down
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -198,8 +198,14 @@ database/*.backup
database/*.db.backup
database/*_backup

# Database files - results.db is large binary file, manage via JSON exports instead
database/results.db

# Note: Database files are now sanitized and safe for public sharing

# Generated report files (prevent accidental generation from test functions)
docs/pages/data/summary.json

# macOS
.DS_Store
.AppleDouble
Expand Down
8 changes: 4 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
[submodule "problems/SDPLIB"]
path = problems/SDPLIB
url = https://github.com/vsdp/SDPLIB.git
[submodule "scripts/solvers/matlab_octave/sedumi"]
path = scripts/solvers/matlab_octave/sedumi
[submodule "scripts/solvers/matlab/sedumi"]
path = scripts/solvers/matlab/sedumi
url = https://github.com/sqlp/sedumi
[submodule "scripts/solvers/matlab_octave/sdpt3"]
path = scripts/solvers/matlab_octave/sdpt3
[submodule "scripts/solvers/matlab/sdpt3"]
path = scripts/solvers/matlab/sdpt3
url = https://github.com/sqlp/sdpt3
110 changes: 45 additions & 65 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,35 +19,39 @@ This is an automated benchmark system for optimization solvers (LP, QP, SOCP, SD

## 🔗 Essential Documentation Links

> **⚠️ DISPATCH HUB NOTICE:**
> **CLAUDE.md serves as a navigation hub. All detailed design content is in dedicated documents below.**

### **REQUIRED READING** (Read these documents carefully before any development):

1. **[📋 Basic Design](docs/development/basic_design.md)** - High-level concepts, project vision, and development roadmap
2. **[🏗️ Detailed Design](docs/development/detail_design.md)** - Complete technical architecture and implementation specifications @docs/development/detail_design.md
3. **[📝 Development Conventions](docs/development/conventions.md)** - Coding standards, git protocols, and engineering guidelines @docs/development/conventions.md
1. **[📋 Basic Design](docs/development/basic_design.md)** - Project vision, design philosophy, and system overview
2. **[🏗️ Detailed Design](docs/development/detail_design.md)** - Complete technical architecture, implementation specifications, and code examples
3. **[📝 Development Conventions](docs/development/conventions.md)** - Coding standards, git protocols, and engineering guidelines
4. **[✅ Current Tasks](docs/development/tasks.md)** - Active development tasks for current phase
5. **[📚 Development History](docs/development/history.md)** - Complete record of completed development phases

### **Quick Reference**:
- **[🚀 Setup Guides](docs/guides/)** - Installation and configuration guides
- **[📊 README.md](README.md)** - Project overview and quick start

> **📖 For system architecture, solver configurations, and implementation details, always refer to the dedicated design documents above rather than this file.**

---

## 🎯 Current Development Status

**Phase**: Production Ready ✅ | All Sprints Completed Successfully
**Achievement**: Meaningful Public Reporting System Complete
**Status**: 139 problems (DIMACS + SDPLIB + Internal) with 5 major solvers
**Phase**: Research Tool Complete ✅
**Achievement**: Comprehensive Benchmark System with External Libraries
**Status**: 139 problems (DIMACS + SDPLIB) with 11 solvers (9 Python + 2 MATLAB)

**Key Achievement**: Complete transformation from basic benchmark tool to production-ready public reporting platform with external problem libraries, comprehensive solver version tracking, and professional-grade HTML reports suitable for research publication.
**Key Achievement**: Comprehensive optimization solver benchmarking platform with external problem libraries, complete version tracking, and research-grade HTML reports with data export capabilities.

---

## 🔧 Development Environment Context

### Core Architecture
- **Platform**: GitHub Actions CI/CD with GitHub Pages deployment
- **Languages**: Python 3.12+, Octave (MATLAB-compatible)
- **Languages**: Python 3.12+, MATLAB R2024+
- **Storage**: SQLite database with structured schema
- **Reporting**: Bootstrap 5 + Chart.js interactive dashboards

Expand All @@ -56,34 +60,28 @@ This is an automated benchmark system for optimization solvers (LP, QP, SOCP, SD
├── config/ # YAML configuration files
├── scripts/ # Core system implementation
│ ├── benchmark/ # Benchmark execution engine
│ ├── solvers/ # Solver implementations (Python)
│ ├── external/ # External library loaders (DIMACS, SDPLIB)
│ ├── solvers/ # Solver implementations
│ │ ├── python/ # Python solver interfaces
│ │ └── matlab/ # MATLAB interfaces
│ ├── data_loaders/ # Problem format loaders
│ │ ├── python/ # Python loaders (MAT/DAT)
│ │ └── matlab/ # MATLAB loaders
│ ├── utils/ # Problem structure analysis, version detection
│ ├── database/ # Data models and storage
│ └── reporting/ # HTML generation and data publishing
├── problems/ # Benchmark problem files
│ ├── DIMACS/ # External DIMACS library (47 problems)
│ └── SDPLIB/ # External SDPLIB library (92 problems)
├── database/ # SQLite database files
│ └── results.db # Benchmark results storage
├── docs/ # Generated reports (GitHub Pages)
└── requirements.txt # Python dependencies (single file)
```

### Current System Capabilities
```
Problem Type | Total Results | Success Rate | Solver Coverage
LP | 12 results | 100% | SciPy + CLARABEL + SCS + ECOS + OSQP
QP | 6 results | 100% | SciPy + CLARABEL + SCS + ECOS + OSQP
SOCP | 31 results | ~43% | CLARABEL + SCS + ECOS
SDP | 38 results | ~29% | CLARABEL + SCS
```
### Current Capabilities
**System Status**: Research Tool Complete with **11 solvers** (9 Python + 2 MATLAB) across **139 problems** (DIMACS + SDPLIB)

### External Problem Libraries
```
Library | Problems | Format | Source
DIMACS | 47 | SeDuMi .mat | Optimization challenges
SDPLIB | 92 | SDPA .dat-s | Semidefinite programming
Total | 139 | Mixed | Complete coverage
```
**For detailed solver coverage and problem statistics, see [basic_design.md](docs/development/basic_design.md).**

---

Expand Down Expand Up @@ -111,6 +109,9 @@ python main.py --report

# Install dependencies
pip install -r requirements.txt

# Setup MATLAB solvers (optional)
matlab -batch "setup_matlab_solvers"
```

---
Expand All @@ -130,21 +131,20 @@ pip install -r requirements.txt
- **Documentation-First**: Update docs for all features
- **User Review**: Stop and wait for approval after each task

### MVP Development Principles
- **Minimal Viable Product**: Always implement the simplest solution that meets the requirement
- **No Extra Features**: Do not add functionality beyond what is explicitly requested
- **User Confirmation Required**: Before implementing any feature that seems necessary but wasn't explicitly requested, ask the user for confirmation
- **YAGNI Principle**: "You Aren't Gonna Need It" - implement only what is needed right now
- **Incremental Development**: Build the core functionality first, then iterate based on user feedback

---

## 🎯 Design Philosophy

### Fair Baseline Benchmarking
- **Minimal Configuration**: Use solver defaults to avoid optimization bias
- **Transparent Comparison**: Prevent parameter tuning favoring specific solvers
- **Open Data**: Publish results as accessible JSON/CSV for research use
- **Reproducible Results**: Standardized environments ensure consistency
**For complete design principles and technical philosophy, see [basic_design.md](docs/development/basic_design.md).**

### Technical Principles
- **Modular Design**: Independent solver/problem additions
- **Configuration-Driven**: YAML-based management
- **Error Resilience**: Continue despite individual failures
- **Automated Operation**: GitHub Actions enables hands-off execution
Core principles: Fair baseline benchmarking with minimal configuration, reproducible results, and modular architecture for research applications.

---

Expand Down Expand Up @@ -184,31 +184,23 @@ pip install -r requirements.txt

## 🛠️ Extension Points

### Adding New Solvers
1. Implement `SolverInterface` abstract base class
2. Add configuration to `config/solvers.yaml`
3. Add dependencies to appropriate requirements file
4. Test with validation framework
**For complete implementation guidance on adding new solvers and problems, see [detail_design.md](docs/development/detail_design.md).**

### Adding New Problems
1. **Problem Extension**: Extend existing DIMACS/SDPLIB collections or add new external libraries
2. **External Libraries**: Add git submodule or extend existing DIMACS/SDPLIB
3. Update `problems/problem_registry.yaml` with problem metadata
4. Implement loader in `scripts/external/` if new format required
5. Validate with `python main.py --validate`
Quick reference: Python solvers via `python_interface.py`, MATLAB solvers via `{solver}_runner.m`, new problems via `problem_registry.yaml`.

---

## 📋 For LLM Agents: Pre-Development Checklist

> **🚨 CRITICAL: CLAUDE.md is a dispatch hub only. All design content is in dedicated documents.**

**BEFORE starting any coding task, confirm you have:**

- [ ] Read [basic_design.md](docs/development/basic_design.md) for project vision and goals
- [ ] Read [detail_design.md](docs/development/detail_design.md) for technical architecture
- [ ] Read [conventions.md](docs/development/conventions.md) for coding standards and protocols
- [ ] Read [@docs/development/basic_design.md](docs/development/basic_design.md) for project vision, design philosophy, and system overview
- [ ] Read [@docs/development/detail_design.md](docs/development/detail_design.md) for complete technical architecture and implementation details
- [ ] Read [@docs/development/conventions.md](docs/development/conventions.md) for coding standards and protocols
- [ ] Reviewed [tasks.md](docs/development/tasks.md) for current development context
- [ ] Understood the fair benchmarking philosophy and minimal configuration approach
- [ ] Familiarized yourself with the modular architecture and extension points
- [ ] Understood that all design decisions and technical details are documented in the linked design files, not in CLAUDE.md

**🚨 CRITICAL CONSTRAINTS CHECKLIST (MUST VERIFY):**

Expand All @@ -222,18 +214,6 @@ pip install -r requirements.txt

---

## 🤝 Integration Context

This system prioritizes:
- **Fair, unbiased solver comparison** through minimal configuration and real-world problems
- **Meaningful public reporting** suitable for research publication and external evaluation
- **External library integration** with DIMACS and SDPLIB optimization problem sets
- **Comprehensive metadata tracking** including solver versions and Git commit recording
- **Professional-grade reporting** with problem structure analysis and library attribution
- **Open data publishing** with complete JSON/CSV exports for research community use
- **Production reliability** with comprehensive testing across 139 problems

---

## 📝 Development Memories

Expand All @@ -242,4 +222,4 @@ This system prioritizes:

*This dispatch document provides entry point context only. All implementation details, coding standards, and development protocols are documented in the linked files above.*

*Last Updated: June 2025 - Production Ready Implementation Complete*
*Last Updated: July 2025*
Loading