flowchart TD style A fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style B fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style C fill:#fff3e0,stroke:#e65100,stroke-width:3px style D fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px style E fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style F fill:#ffcdd2,stroke:#c62828,stroke-width:3px style G fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style H fill:#fff3e0,stroke:#e65100,stroke-width:3px style I fill:#ffcdd2,stroke:#c62828,stroke-width:3px A(("Initial polyhedron S")) --> B[Choose point xโ in S] B --> C[Query cutting-plane oracle at xโ] C --> D{xโ โ K?} D -->|Yes| E([Return xโ โ]) D -->|No| F[Get cutting plane g,h] F --> G[Update: shrink polyhedron] G --> H{S empty or small?} H -->|Yes| I([No solution]) H -->|No| B