graph TD A["Problem\n Formulation"] --> B{"Is it\n Convex?"} B -->|Yes| C[Choose Solver] B -->|No| D["Transform or\n Approximate"] D --> E{Convex now?} E -->|Yes| C E -->|No| F["Use Heuristic\n Methods"] C --> G["Gradient\n Descent"] C --> H["Interior\n Point"] C --> I["Barrier\n Method"] G --> J{"KKT\n Satisfied?"} H --> J I --> J J -->|Yes| K["Global\n Optimum"] J -->|No| L["Adjust\n Parameters"] L --> C F --> M["Local\n Optimum"] style A fill:#2196f3 style B fill:#f44336 style C fill:#2196f3 style D fill:#ff9800 style E fill:#f44336 style F fill:#ff9800 style G fill:#2196f3 style H fill:#2196f3 style I fill:#2196f3 style J fill:#f44336 style K fill:#4caf50 style L fill:#ff9800 style M fill:#ff9800