graph LR A["Non-convex\nProblem"] --> B["Convex\nRelaxation"] B --> C["Solve Convex\nRelaxed Problem"] C --> D["Round or\nProject Back"] D --> E["Feasible\nSolution"] style A fill:#f44336 style B fill:#ff9800 style C fill:#4caf50 style D fill:#2196f3 style E fill:#9c27b0
graph TD A["Original Variable\nx (non-convex)"] --> B["Transformation\ny = g(x)"] B --> C["New Variable\ny (convex)"] C --> D["Solve in\ny-space"] D --> E["Inverse\nx = g^{-1}(y)"] E --> F["Optimal\nSolution x*"] style A fill:#f44336 style B fill:#ff9800 style C fill:#4caf50 style D fill:#2196f3 style E fill:#9c27b0 style F fill:#4caf50
graph LR A["Non-convex\nFunction f"] --> B["Decompose\nf = g - h"] B --> C["g is convex\nh is convex"] C --> D["Iteratively\nLinearize h"] D --> E["Solve Convex\nSubproblem"] E --> F["Update\nSolution"] F -.-> D style A fill:#f44336 style B fill:#ff9800 style C fill:#4caf50 style D fill:#2196f3 style E fill:#9c27b0 style F fill:#4caf50
graph TD A["QCQP\nProblem"] --> B["Lift to\nMatrix Space"] B --> C["Drop Rank-1\nConstraint"] C --> D["SDP\nProblem"] D --> E["Extract\nSolution via SVD"] style A fill:#f44336 style B fill:#ff9800 style C fill:#2196f3 style D fill:#4caf50 style E fill:#9c27b0