graph TD A["Initialize\nxโ, yโ"] --> B["Fix yโ\nOptimize x"] B --> C["xโโโ = argmin f(x, yโ)"] C --> D["Fix xโโโ\nOptimize y"] D --> E["yโโโ = argmin f(xโโโ, y)"] E --> F{"Converged?"} F -->|No| B F -->|Yes| G["Optimal\nSolution"] style A fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px,color:#2e3440 style B fill:#fff3e0,stroke:#e65100,stroke-width:3px,color:#2e3440 style C fill:#e3f2fd,stroke:#1565c0,stroke-width:3px,color:#2e3440 style D fill:#fff3e0,stroke:#e65100,stroke-width:3px,color:#2e3440 style E fill:#e3f2fd,stroke:#1565c0,stroke-width:3px,color:#2e3440 style F fill:#ffcdd2,stroke:#c62828,stroke-width:3px,color:#2e3440 style G fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px,color:#2e3440
graph TD A["Variables\nxโ, xโ, ..., xโ"] --> B["Partition into\nBlocks"] B --> C["Block 1:\nOptimize xโ"] C --> D["Block 2:\nOptimize xโ"] D --> E["Block k:\nOptimize xโ"] E --> F{"Converged?"} F -->|No| C F -->|Yes| G["Local\nMinimum"] style A fill:#ffcdd2,stroke:#c62828,stroke-width:3px,color:#2e3440 style B fill:#fff3e0,stroke:#e65100,stroke-width:3px,color:#2e3440 style C fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px,color:#2e3440 style D fill:#e3f2fd,stroke:#1565c0,stroke-width:3px,color:#2e3440 style E fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px,color:#2e3440 style F fill:#ffcdd2,stroke:#c62828,stroke-width:3px,color:#2e3440 style G fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px,color:#2e3440
graph LR A["Alternating\nMinimization"] --> B["Convex?\nEach Subproblem"] B -->|Yes| C["Converges to\nStationary Point"] B -->|No| D["May Diverge\nor Oscillate"] C --> E["Globally\nOptimal?"] E -->|"Jointly\nConvex"| F["Yes โ "] E -->|"Not Jointly\nConvex"| G["Local Min\nOnly โ ๏ธ"] style A fill:#fff3e0,stroke:#e65100,stroke-width:3px,color:#2e3440 style B fill:#e3f2fd,stroke:#1565c0,stroke-width:3px,color:#2e3440 style C fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px,color:#2e3440 style D fill:#ffcdd2,stroke:#c62828,stroke-width:3px,color:#2e3440 style E fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px,color:#2e3440 style F fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px,color:#2e3440 style G fill:#ffcdd2,stroke:#c62828,stroke-width:3px,color:#2e3440