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:#4caf50 style B fill:#ff9800 style C fill:#2196f3 style D fill:#ff9800 style E fill:#2196f3 style F fill:#f44336 style G fill:#9c27b0
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:#f44336 style B fill:#ff9800 style C fill:#4caf50 style D fill:#2196f3 style E fill:#9c27b0 style F fill:#f44336 style G fill:#4caf50
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:#ff9800 style B fill:#2196f3 style C fill:#4caf50 style D fill:#f44336 style E fill:#9c27b0 style F fill:#4caf50 style G fill:#f44336